/**
 * 封装 axios 请求模块
 */
//1.在src文件夹下面的utils文件夹中创建request.js；
//2.在request中引入axios模块，调用axios.create方法，配置服务器基准路径；
import axios from "axios"
import store from "@/store"
import JSONBig from 'json-bigint'
const request = axios.create({
    baseURL: "http://toutiao.itheima.net", // 基础路径

    // 通过transformResponse自定义后端返回的原始数据
    // data参数代表的是后端返回的原始数据，说白了就是 JSON 格式的字符串
    transformResponse: [function (data) {
        try {
            return JSONBig.parse(data)
        } catch (err) {
            return data
        }
        // axios 默认会在内部这样来处理后端返回的数据
        // return JSON.parse(data)
    }]
})

//请求拦截器

request.interceptors.request.use(function (config) {
    // Do something before request is sent
    // config ：本次请求的配置对象
    // config 里面有一个属性：headers
    const { user } = store.state
    if (user && user.token) {
        config.headers.Authorization = `Bearer ${user.token}`
        // console.log('config为', config);
    }
    return config
}, function (error) {
    // Do something with request error
    return Promise.reject(error)
})


//响应拦截器




//将请求模块默认导出；
export default request